import http from './http'
import Vue from "vue";

/**
 * overview API 方法集合
 */
const api = {
    /**
     * 获取请假信息
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getLeave: () => {
        return http.get(`overview/getLeave`)
            .catch(error => {
                console.error('获取请假信息失败:', error);
                throw error;
            });
    },
    /**
     * 获取饭卡信息
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getMealcard: () => {
        return http.get(`overview/getMealcard`)
            .catch(error => {
                console.error('获取饭卡信息失败:', error);
                throw error;
            });
    },
    /**
     * 获取内务信息
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getHousekeeping: data => {
        return http.get(`overview/getHousekeeping?pageNum=${data.pageNum}&pageSize=${data.pageSize}`)
            .catch(error => {
                console.error('获取内务信息失败:', error);
                throw error;
            });
    },
    // /**
    //  * 获取饭卡信息 post
    //  * @param {Object} data - 发送到服务器的请求数据
    //  * @returns {Promise} 返回一个 Promise 对象，包含请求结果
    //  */
    // getMealcard: (data) => {
    //     return http.post(`overview/getMealcard`, data)
    //         .catch(error => {
    //             console.error('获取饭卡信息失败:', error);
    //             throw error;
    //         });
    // }
    /**
     * 获取主动回答问题数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getProactive: () => {
        return http.get(`overview/getProactive`)
            .catch(error => {
                console.error('获取主动回答问题数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取竞赛情况数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getCompetition: () => {
        return http.get(`overview/getCompetition`)
            .catch(error => {
                console.error('获取竞赛情况数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取图书馆使用情况数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getLibrary: () => {
        return http.get(`overview/getLibrary`)
            .catch(error => {
                console.error('获取图书馆使用情况数据失败:', error);
                throw error;
            });
    },
    /**
     * 获取考试具体分数数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getExamScore: data => {
        return http.get(`overview/getExamScore?examName=${data.examName}&subject=${data.subject}`)
            .catch(error => {
                console.error('获取考试具体分数数据失败:', error);
                throw error;
            });
    },
    /**
     * 获取考试信息数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getExamInfo: () => {
        return http.get(`overview/getExamInfo`)
            .catch(error => {
                console.error('获取考试信息数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取作业评级数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getHomeworkrating: () => {
        return http.get(`overview/getHomeworkrating`)
            .catch(error => {
                console.error('获取作业评级数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取成绩对比数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getScoreComparison: () => {
        return http.get(`overview/getScoreComparison`)
            .catch(error => {
                console.error('获取成绩对比数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取讲座数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getLecture: data => {
        return http.get(`overview/getLecture?pageNum=${data.pageNum}&pageSize=${data.pageSize}`)
            .catch(error => {
                console.error('获取讲座数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取晚加班数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getOvertime: () => {
        return http.get(`overview/getOvertime`)
            .catch(error => {
                console.error('获取晚加班数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取988数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getVisitdoctor: () => {
        return http.get(`overview/getVisitdoctor`)
            .catch(error => {
                console.error('获取988就诊记录数据失败:', error);
                throw error;
            });
    },

    /**
     * 获取体测数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getSportstest: data => {
        return http.get(`overview/getSportstest?pageNum=${data.pageNum}&pageSize=${data.pageSize}`)
            .catch(error => {
                console.error('获取体测数据失败:', error);
                throw error;
            });
    },
    /**
     * 获取参与活动数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getActivities: data => {
        return http.get(`/overview/getActivities?pageNum=${data.pageNum}&pageSize=${data.pageSize}`)
            .catch(error => {
                console.error('获取参与活动数据失败:', error);
                throw error;
            });
    },
    /**
     * 获取JRFJ数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
    getJRFJs: data => {
    return http.get(`/overview/getJRFJ?pageNum=${data.pageNum}&pageSize=${data.pageSize}`)
        .catch(error => {
            console.error('获取JRFJ数据失败:', error);
            throw error;
        });
},
 /**
     * 获取保密数据
     * @returns {Promise} 返回一个 Promise 对象，包含请求结果
     */
 getSecurity: data => {
    return http.get(`/overview/getSecurity?pageNum=${data.pageNum}&pageSize=${data.pageSize}`)
        .catch(error => {
            console.error('获取保密数据失败:', error);
            throw error;
        });
},

/**
 * 获取纠察数据
 * @returns {Promise} 返回一个 Promise 对象，包含请求结果
 */
getPicket: data => {
    return http.get(`/overview/getPicket?pageNum=${data.pageNum}&pageSize=${data.pageSize}`)
        .catch(error => {
            console.error('获取纠察数据失败:', error);
            throw error;
        });
}
};

// 将 API 方法挂载到 Vue 原型上
Vue.prototype.$overviewapi = api;

export default api;
